﻿// 这段 MFC 示例源代码演示如何使用 MFC Microsoft Office Fluent 用户界面
// (“Fluent UI”)。该示例仅供参考，
// 用以补充《Microsoft 基础类参考》和
// MFC C++ 库软件随附的相关电子文档。
// 复制、使用或分发 Fluent UI 的许可条款是单独提供的。
// 若要了解有关 Fluent UI 许可计划的详细信息，请访问
// https://go.microsoft.com/fwlink/?LinkId=238214.
//
// 版权所有(C) Microsoft Corporation
// 保留所有权利。

// CheckerDoc.h: CheckerDoc 类的接口
//


#pragma once


class CheckerDoc : public CDocument
{
protected: // 仅从序列化创建
	CheckerDoc() noexcept;
	DECLARE_DYNCREATE(CheckerDoc)

// 特性
public:

// 操作
public:

// 重写
public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
#ifdef SHARED_HANDLERS
	virtual void InitializeSearchContent();
	virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);
#endif // SHARED_HANDLERS

// 实现
public:
	virtual ~CheckerDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

public:
	ck::CheckProject*	GetProject();

protected:
	ck::CheckProject*	m_pProject;

protected:
	void	CloseProject();
	BOOL	AddDataSource(ck::DataSource* pDataSource);

// 生成的消息映射函数
protected:
	DECLARE_MESSAGE_MAP()

#ifdef SHARED_HANDLERS
	// 用于为搜索处理程序设置搜索内容的 Helper 函数
	void SetSearchContent(const CString& value);
#endif // SHARED_HANDLERS

protected:
	IFeatureLayerPtr	OpenLayerShp(CString strPath);
	IRasterLayerPtr		OpenLayerTif(CString strPath);
	IGroupLayerPtr		OpenLayerLandsat5(const char* szPath);

public:
	afx_msg void OnBtnProjectNew();
	afx_msg void OnUpdateBtnProjectNew(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectOpen();
	afx_msg void OnUpdateBtnProjectOpen(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectSave();
	afx_msg void OnUpdateBtnProjectSave(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectClose();
	afx_msg void OnUpdateBtnProjectClose(CCmdUI *pCmdUI);
	afx_msg void OnBtnCaseImport();
	afx_msg void OnUpdateBtnCaseImport(CCmdUI *pCmdUI);
	afx_msg void OnBtnCaseLibrary();
	afx_msg void OnUpdateBtnCaseLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnModelLibrary();
	afx_msg void OnUpdateBtnModelLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnModelEdit();
	afx_msg void OnBtnCheckElementLibrary();
	afx_msg void OnUpdateBtnCheckElementLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnCheckRun();
	afx_msg void OnUpdateBtnCheckRun(CCmdUI *pCmdUI);
	afx_msg void OnBtnResult();
	afx_msg void OnUpdateBtnResult(CCmdUI *pCmdUI);
	afx_msg void OnBtnOperatorLibrary();
	afx_msg void OnUpdateBtnOperatorLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnSysConfig();
	afx_msg void OnUpdateBtnSysConfig(CCmdUI *pCmdUI);
	afx_msg void OnBtnSysModule();
	afx_msg void OnUpdateBtnSysModule(CCmdUI *pCmdUI);
	afx_msg void OnBtnSysModuleLibrary();
	afx_msg void OnUpdateBtnSysModuleLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnOpenLayerTif();
	afx_msg void OnUpdateBtnOpenLayerTif(CCmdUI *pCmdUI);
	afx_msg void OnBtnOpenLayerShp();
	afx_msg void OnUpdateBtnOpenLayerShp(CCmdUI *pCmdUI);
	afx_msg void OnBtnOpenGdb();
	afx_msg void OnUpdateBtnOpenGdb(CCmdUI *pCmdUI);
	afx_msg void OnBtnOpenLandsat05();
	afx_msg void OnBtnRasterPropPsnr();
	afx_msg void OnUpdateBtnRasterPropPsnr(CCmdUI *pCmdUI);
	afx_msg void OnBtnRasterPropGlcm();
	afx_msg void OnUpdateBtnRasterPropGlcm(CCmdUI *pCmdUI);
	afx_msg void OnBtnRasterRadiation();
	afx_msg void OnUpdateBtnRasterRadiation(CCmdUI *pCmdUI);
	afx_msg void OnBtnLandsatRadiation();
	afx_msg void OnUpdateBtnLandsatRadiation(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectProperty();
	afx_msg void OnUpdateBtnProjectProperty(CCmdUI *pCmdUI);
	afx_msg void OnBtnDataProductLibrary();
	afx_msg void OnUpdateBtnDataProductLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectLoadFile();
	afx_msg void OnUpdateBtnProjectLoadFile(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectLoadFolder();
	afx_msg void OnUpdateBtnProjectLoadFolder(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectLoadLansat05();
	afx_msg void OnUpdateBtnProjectLoadLansat05(CCmdUI *pCmdUI);
	afx_msg void OnBtnRasterRadiationRun();
	afx_msg void OnUpdateBtnRasterRadiationRun(CCmdUI *pCmdUI);
	afx_msg void OnBtnProjectLibrary();
	afx_msg void OnUpdateBtnProjectLibrary(CCmdUI *pCmdUI);
	afx_msg void OnBtnCheckResultExport();
};
